/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package EA_Model.IEC61970.Wires;

import EA_Model.IEC61970.Core.ConductingEquipment;

import EA_Model.IEC61970.Domain.ApparentPower;
import EA_Model.IEC61970.Domain.Conductance;
import EA_Model.IEC61970.Domain.Reactance;
import EA_Model.IEC61970.Domain.Resistance;
import EA_Model.IEC61970.Domain.Susceptance;
import EA_Model.IEC61970.Domain.Voltage;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Transformer Winding</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link EA_Model.IEC61970.Wires.TransformerWinding#getB <em>B</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TransformerWinding#getB0 <em>B0</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TransformerWinding#getConnectionType <em>Connection Type</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TransformerWinding#getEmergencyS <em>Emergency S</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TransformerWinding#getG <em>G</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TransformerWinding#getG0 <em>G0</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TransformerWinding#getGrounded <em>Grounded</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TransformerWinding#getInsulationU <em>Insulation U</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TransformerWinding#getR <em>R</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TransformerWinding#getR0 <em>R0</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TransformerWinding#getRatedS <em>Rated S</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TransformerWinding#getRatedU <em>Rated U</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TransformerWinding#getRground <em>Rground</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TransformerWinding#getShortTermS <em>Short Term S</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TransformerWinding#getWindingType <em>Winding Type</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TransformerWinding#getX <em>X</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TransformerWinding#getX0 <em>X0</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.TransformerWinding#getXground <em>Xground</em>}</li>
 * </ul>
 * </p>
 *
 * @see EA_Model.IEC61970.Wires.WiresPackage#getTransformerWinding()
 * @model
 * @generated
 */
public interface TransformerWinding extends ConductingEquipment {
	/**
	 * Returns the value of the '<em><b>B</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>B</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>B</em>' reference.
	 * @see #setB(Susceptance)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTransformerWinding_B()
	 * @model ordered="false"
	 * @generated
	 */
	Susceptance getB();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TransformerWinding#getB <em>B</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>B</em>' reference.
	 * @see #getB()
	 * @generated
	 */
	void setB(Susceptance value);

	/**
	 * Returns the value of the '<em><b>B0</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>B0</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>B0</em>' reference.
	 * @see #setB0(Susceptance)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTransformerWinding_B0()
	 * @model ordered="false"
	 * @generated
	 */
	Susceptance getB0();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TransformerWinding#getB0 <em>B0</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>B0</em>' reference.
	 * @see #getB0()
	 * @generated
	 */
	void setB0(Susceptance value);

	/**
	 * Returns the value of the '<em><b>Connection Type</b></em>' attribute.
	 * The literals are from the enumeration {@link EA_Model.IEC61970.Wires.WindingConnection}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Connection Type</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Connection Type</em>' attribute.
	 * @see EA_Model.IEC61970.Wires.WindingConnection
	 * @see #setConnectionType(WindingConnection)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTransformerWinding_ConnectionType()
	 * @model ordered="false"
	 * @generated
	 */
	WindingConnection getConnectionType();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TransformerWinding#getConnectionType <em>Connection Type</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Connection Type</em>' attribute.
	 * @see EA_Model.IEC61970.Wires.WindingConnection
	 * @see #getConnectionType()
	 * @generated
	 */
	void setConnectionType(WindingConnection value);

	/**
	 * Returns the value of the '<em><b>Emergency S</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Emergency S</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Emergency S</em>' reference.
	 * @see #setEmergencyS(ApparentPower)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTransformerWinding_EmergencyS()
	 * @model ordered="false"
	 * @generated
	 */
	ApparentPower getEmergencyS();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TransformerWinding#getEmergencyS <em>Emergency S</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Emergency S</em>' reference.
	 * @see #getEmergencyS()
	 * @generated
	 */
	void setEmergencyS(ApparentPower value);

	/**
	 * Returns the value of the '<em><b>G</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>G</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>G</em>' reference.
	 * @see #setG(Conductance)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTransformerWinding_G()
	 * @model ordered="false"
	 * @generated
	 */
	Conductance getG();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TransformerWinding#getG <em>G</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>G</em>' reference.
	 * @see #getG()
	 * @generated
	 */
	void setG(Conductance value);

	/**
	 * Returns the value of the '<em><b>G0</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>G0</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>G0</em>' reference.
	 * @see #setG0(Conductance)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTransformerWinding_G0()
	 * @model ordered="false"
	 * @generated
	 */
	Conductance getG0();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TransformerWinding#getG0 <em>G0</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>G0</em>' reference.
	 * @see #getG0()
	 * @generated
	 */
	void setG0(Conductance value);

	/**
	 * Returns the value of the '<em><b>Grounded</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Grounded</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Grounded</em>' reference.
	 * @see #setGrounded(EA_Model.IEC61970.Domain.Boolean)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTransformerWinding_Grounded()
	 * @model ordered="false"
	 * @generated
	 */
	EA_Model.IEC61970.Domain.Boolean getGrounded();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TransformerWinding#getGrounded <em>Grounded</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Grounded</em>' reference.
	 * @see #getGrounded()
	 * @generated
	 */
	void setGrounded(EA_Model.IEC61970.Domain.Boolean value);

	/**
	 * Returns the value of the '<em><b>Insulation U</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Insulation U</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Insulation U</em>' reference.
	 * @see #setInsulationU(Voltage)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTransformerWinding_InsulationU()
	 * @model ordered="false"
	 * @generated
	 */
	Voltage getInsulationU();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TransformerWinding#getInsulationU <em>Insulation U</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Insulation U</em>' reference.
	 * @see #getInsulationU()
	 * @generated
	 */
	void setInsulationU(Voltage value);

	/**
	 * Returns the value of the '<em><b>R</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>R</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>R</em>' reference.
	 * @see #setR(Resistance)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTransformerWinding_R()
	 * @model ordered="false"
	 * @generated
	 */
	Resistance getR();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TransformerWinding#getR <em>R</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>R</em>' reference.
	 * @see #getR()
	 * @generated
	 */
	void setR(Resistance value);

	/**
	 * Returns the value of the '<em><b>R0</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>R0</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>R0</em>' reference.
	 * @see #setR0(Resistance)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTransformerWinding_R0()
	 * @model ordered="false"
	 * @generated
	 */
	Resistance getR0();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TransformerWinding#getR0 <em>R0</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>R0</em>' reference.
	 * @see #getR0()
	 * @generated
	 */
	void setR0(Resistance value);

	/**
	 * Returns the value of the '<em><b>Rated S</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Rated S</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Rated S</em>' reference.
	 * @see #setRatedS(ApparentPower)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTransformerWinding_RatedS()
	 * @model ordered="false"
	 * @generated
	 */
	ApparentPower getRatedS();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TransformerWinding#getRatedS <em>Rated S</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Rated S</em>' reference.
	 * @see #getRatedS()
	 * @generated
	 */
	void setRatedS(ApparentPower value);

	/**
	 * Returns the value of the '<em><b>Rated U</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Rated U</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Rated U</em>' reference.
	 * @see #setRatedU(Voltage)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTransformerWinding_RatedU()
	 * @model ordered="false"
	 * @generated
	 */
	Voltage getRatedU();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TransformerWinding#getRatedU <em>Rated U</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Rated U</em>' reference.
	 * @see #getRatedU()
	 * @generated
	 */
	void setRatedU(Voltage value);

	/**
	 * Returns the value of the '<em><b>Rground</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Rground</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Rground</em>' reference.
	 * @see #setRground(Resistance)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTransformerWinding_Rground()
	 * @model ordered="false"
	 * @generated
	 */
	Resistance getRground();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TransformerWinding#getRground <em>Rground</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Rground</em>' reference.
	 * @see #getRground()
	 * @generated
	 */
	void setRground(Resistance value);

	/**
	 * Returns the value of the '<em><b>Short Term S</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Short Term S</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Short Term S</em>' reference.
	 * @see #setShortTermS(ApparentPower)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTransformerWinding_ShortTermS()
	 * @model ordered="false"
	 * @generated
	 */
	ApparentPower getShortTermS();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TransformerWinding#getShortTermS <em>Short Term S</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Short Term S</em>' reference.
	 * @see #getShortTermS()
	 * @generated
	 */
	void setShortTermS(ApparentPower value);

	/**
	 * Returns the value of the '<em><b>Winding Type</b></em>' attribute.
	 * The literals are from the enumeration {@link EA_Model.IEC61970.Wires.WindingType}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Winding Type</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Winding Type</em>' attribute.
	 * @see EA_Model.IEC61970.Wires.WindingType
	 * @see #setWindingType(WindingType)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTransformerWinding_WindingType()
	 * @model ordered="false"
	 * @generated
	 */
	WindingType getWindingType();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TransformerWinding#getWindingType <em>Winding Type</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Winding Type</em>' attribute.
	 * @see EA_Model.IEC61970.Wires.WindingType
	 * @see #getWindingType()
	 * @generated
	 */
	void setWindingType(WindingType value);

	/**
	 * Returns the value of the '<em><b>X</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>X</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>X</em>' reference.
	 * @see #setX(Reactance)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTransformerWinding_X()
	 * @model ordered="false"
	 * @generated
	 */
	Reactance getX();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TransformerWinding#getX <em>X</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>X</em>' reference.
	 * @see #getX()
	 * @generated
	 */
	void setX(Reactance value);

	/**
	 * Returns the value of the '<em><b>X0</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>X0</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>X0</em>' reference.
	 * @see #setX0(Reactance)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTransformerWinding_X0()
	 * @model ordered="false"
	 * @generated
	 */
	Reactance getX0();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TransformerWinding#getX0 <em>X0</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>X0</em>' reference.
	 * @see #getX0()
	 * @generated
	 */
	void setX0(Reactance value);

	/**
	 * Returns the value of the '<em><b>Xground</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Xground</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Xground</em>' reference.
	 * @see #setXground(Reactance)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getTransformerWinding_Xground()
	 * @model ordered="false"
	 * @generated
	 */
	Reactance getXground();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.TransformerWinding#getXground <em>Xground</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Xground</em>' reference.
	 * @see #getXground()
	 * @generated
	 */
	void setXground(Reactance value);

} // TransformerWinding
